package com.gzhryc.shared_device.cdcz.core.protocol.v1.models;

import java.math.BigInteger;

public class PlugStateData {

    String data;

    public PlugStateData(String data){
        BigInteger bigInteger = new BigInteger(data,16);
        String temp = bigInteger.toString(2);
        while (temp.length() < 8){
            temp = "0" + temp;
        }
        this.data = new StringBuilder(temp).reverse().toString();
    }

    /**
     * 过载
     * @return
     */
    public int getOverload(){
       char c = data.charAt(0);
       if(c == '1'){
           return 1;
       }else{
           return 0;
       }
    }

    /**
     * 过流
     * @return
     */
    public int getOverCurrent(){
        char c = data.charAt(1);
        if(c == '1'){
            return 1;
        }else{
            return 0;
        }
    }

    /**
     * 过温
     * @return
     */
    public int getOverTemperature(){
        char c = data.charAt(2);
        if(c == '1'){
            return 1;
        }else{
            return 0;
        }
    }

    /**
     * 空载
     * @return
     */
    public int getNoLoad(){
        char c = data.charAt(3);
        if(c == '1'){
            return 1;
        }else{
            return 0;
        }
    }

    /**
     * 充电状态，0:未充电，1:充电，2:充满即停，3:时间到，4:最大电量到，5:强制停，6:用户拔出超时停
     * @return
     */
    public int getWorkState(){
        //前面进行了反转，这里要反转回来
        char[] cc = new char[]{'0',data.charAt(6),data.charAt(5),data.charAt(4)};
        return Integer.valueOf(new String(cc),2);
    }

    /**
     * 是否通电，0:未通电，1:通电
     * @return
     */
    public int getPowerState(){
        char c = data.charAt(7);
        if(c == '1'){
            return 1;
        }else{
            return 0;
        }
    }

    public String getData(){
        return this.data;
    }
}
